package 五排序;

import java.util.Arrays;

/**
 * @Author XuZhuHong
 * @CreateTime 2021/9/15 12:22
 */
public class BubbleSort {
    public static void main(String[] args) {
        int i = 10;
        int[] array = new int[i];
        //生成随机排序
        for (int k = 0; k < i; k++) {
            for (int j = 0; j < i; j++) {
                array[j] = (int) (Math.random() * i * 10);
            }

            //原本数组：
            System.out.printf("第%d \t次数组=》", (k + 1));
            for (int i1 : array) {
                System.out.print(i1 + " \t");
            }

            //开始排序
            bubbleSort(array);

            //输出
            System.out.printf("，排序后为=》", (k + 1));
            for (int i1 : array) {
                System.out.print(i1 + " \t");
            }
            System.out.println();
        }

    }

    public static void bubbleSort(int array[]) {
        boolean flag=true;//判断是 在一次遍历中  是否没有交换过位置  没有交换过 说明已经位置正确了
        for (int i = 0; i < array.length-1; i++) {
            for (int j = 0; j < array.length-1-i; j++) {
                if(array[j]>array[j+1]){
                    flag=false;
                    //互换
                    array[j]=array[j]+array[j+1];
                    array[j+1]=array[j]-array[j+1];
                    array[j]=array[j]-array[j+1];
                }
            }

            if (flag) {
                return;
            }else{
                //因为这个是每判断一个数就改一次 所以要重置
                flag=true;
            }
        }
    }
}
